Skip to content

Commit 3fb2497

Browse files
authored
Use reconcile-timeout for live apply tests (#2618)
1 parent e70cd85 commit 3fb2497

File tree

6 files changed

+51
-2
lines changed

6 files changed

+51
-2
lines changed

e2e/testdata/live-apply/apply-depends-on/config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
parallel: true
1616

17+
kptArgs:
18+
- "--reconcile-timeout=1m"
19+
1720
stdOut: |
1821
deployment.apps/first-nginx created
1922
1 resource(s) applied. 1 created, 0 unchanged, 0 configured, 0 failed

e2e/testdata/live-apply/crd-and-cr/config.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
# limitations under the License.
1414

1515
parallel: true
16+
17+
kptArgs:
18+
- "--reconcile-timeout=1m"
19+
1620
stdOut: |
1721
customresourcedefinition.apiextensions.k8s.io/customs.kpt.dev created
1822
1 resource(s) applied. 1 created, 0 unchanged, 0 configured, 0 failed

e2e/testdata/live-apply/install-rg-on-apply/config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
parallel: false
1616
noResourceGroup: true
17+
kptArgs:
18+
- "--reconcile-timeout=1m"
1719
stdOut: |
1820
deployment.apps/nginx-deployment created
1921
1 resource(s) applied. 1 created, 0 unchanged, 0 configured, 0 failed

e2e/testdata/live-apply/json-output/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
parallel: true
1616
kptArgs:
1717
- "--output=json"
18+
- "--reconcile-timeout=1m"
1819
stdOut: |
1920
{"eventType":"resourceApplied","group":"","kind":"ConfigMap","name":"cm","namespace":"json-output","operation":"Created","timestamp":"<TIMESTAMP>","type":"apply"}
2021
{"eventType":"resourceApplied","group":"apps","kind":"Deployment","name":"third-nginx","namespace":"json-output","operation":"Created","timestamp":"<TIMESTAMP>","type":"apply"}

e2e/testdata/live-apply/prune-depends-on/config.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
# limitations under the License.
1414

1515
parallel: true
16+
17+
kptArgs:
18+
- "--reconcile-timeout=1m"
19+
1620
stdOut: |
1721
configmap/cm created
1822
1 resource(s) applied. 1 created, 0 unchanged, 0 configured, 0 failed

pkg/test/live/runner.go

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package live
1616

1717
import (
18+
"bufio"
1819
"bytes"
1920
"errors"
2021
"os"
@@ -26,6 +27,7 @@ import (
2627
"testing"
2728

2829
"github.com/stretchr/testify/assert"
30+
"sigs.k8s.io/cli-utils/pkg/kstatus/status"
2931
"sigs.k8s.io/kustomize/kyaml/yaml"
3032
)
3133

@@ -96,11 +98,15 @@ func (r *Runner) VerifyExitCode(t *testing.T, err error) {
9698
}
9799

98100
func (r *Runner) VerifyStdout(t *testing.T, stdout string) {
99-
assert.Equal(t, strings.TrimSpace(r.Config.StdOut), strings.TrimSpace(substituteTimestamps(stdout)))
101+
assert.Equal(t, strings.TrimSpace(r.Config.StdOut), prepOutput(t, stdout))
100102
}
101103

102104
func (r *Runner) VerifyStderr(t *testing.T, stderr string) {
103-
assert.Equal(t, strings.TrimSpace(r.Config.StdErr), strings.TrimSpace(substituteTimestamps(stderr)))
105+
assert.Equal(t, strings.TrimSpace(r.Config.StdErr), prepOutput(t, stderr))
106+
}
107+
108+
func prepOutput(t *testing.T, s string) string {
109+
return strings.TrimSpace(substituteTimestamps(removeStatusEvents(t, s)))
104110
}
105111

106112
func (r *Runner) VerifyInventory(t *testing.T, name, namespace string) {
@@ -173,3 +179,32 @@ var timestampRegexp = regexp.MustCompile(`\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z`)
173179
func substituteTimestamps(text string) string {
174180
return timestampRegexp.ReplaceAllString(text, "<TIMESTAMP>")
175181
}
182+
183+
var statuses = []status.Status{
184+
status.InProgressStatus,
185+
status.CurrentStatus,
186+
status.FailedStatus,
187+
status.TerminatingStatus,
188+
status.UnknownStatus,
189+
status.NotFoundStatus,
190+
}
191+
192+
func removeStatusEvents(t *testing.T, text string) string {
193+
scanner := bufio.NewScanner(strings.NewReader(text))
194+
var lines []string
195+
196+
scan:
197+
for scanner.Scan() {
198+
line := scanner.Text()
199+
for _, s := range statuses {
200+
if strings.Contains(line, s.String()) {
201+
continue scan
202+
}
203+
}
204+
lines = append(lines, line)
205+
}
206+
if err := scanner.Err(); err != nil {
207+
t.Fatalf("error scanning output: %v", err)
208+
}
209+
return strings.Join(lines, "\n")
210+
}

0 commit comments

Comments
 (0)