Commit Graph

18 Commits

Author SHA1 Message Date
Patrick Ohly
83c37acb21 e2e framework: adapt unit test to Go 1.22
Go 1.22 changed the name of init functions from "glob..func" to
"init.func". That difference is acceptable and has to be ignored when comparing
output.
2023-09-19 12:18:34 +02:00
TommyStarK
d9e2583af1 test/e2e: replace deprecated ioutil
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2023-05-29 19:36:29 +02:00
Patrick Ohly
005a9da0cc e2e framework: implement pod polling with gomega.Eventually
gomega.Eventually provides better progress reports: instead of filling up the
log with rather useless one-line messages that are not enough to to understand
the current state, it integrates with Gingko's progress reporting (SIGUSR1,
--poll-progress-after) and then dumps the same complete failure message as
after a timeout. That makes it possible to understand why progress isn't
getting made without having to wait for the timeout.

The other advantage is that the failure message for some unexpected pod state
becomes more readable: instead of encapsulating it as "observed object" inside
an error, it directly gets rendered by gomega.
2023-02-06 15:39:12 +01:00
Antonio Ojea
7f5ae1c0c1 Revert "e2e: wait for pods with gomega" 2023-02-06 12:08:22 +01:00
Patrick Ohly
e8a50b0583 e2e framework: implement pod polling with gomega.Eventually
gomega.Eventually provides better progress reports: instead of filling up the
log with rather useless one-line messages that are not enough to to understand
the current state, it integrates with Gingko's progress reporting (SIGUSR1,
--poll-progress-after) and then dumps the same complete failure message as
after a timeout. That makes it possible to understand why progress isn't
getting made without having to wait for the timeout.

The other advantage is that the failure message for some unexpected pod state
becomes more readable: instead of encapsulating it as "observed object" inside
an error, it directly gets rendered by gomega.
2023-01-31 07:52:26 +01:00
Patrick Ohly
766e7e07da e2e framework: verify JUnit result, not the in-memory structs
The old tests were no longer passing with Ginkgo v2.5.0. Instead of keeping the
old approach of checking recorded spec results, now the tests actually cover
what we care about most: the results recorded in JUnit.

This also gets rid of having to repeat the stack backtrace twice (once as part
of the output, once for the separate backtrace field).
2022-12-21 07:55:07 +01:00
Patrick Ohly
0df49542b1 e2e framework: fix unit test flake
The Gingo v2 time suffix is hh:mm:ss without the .xyz sub-second details if the
time stamp happens to land exactly on a second.

This change fixes test flakes like the following:

    -STEP: Building a namespace api object, basename test-namespace
    +STEP: Building a namespace api object, basename test-namespace 12/13/22 11:43:53

    --- FAIL: TestCleanup (36.79s)
2022-12-13 15:29:18 +01:00
Patrick Ohly
16f05373f4 e2e framework internal: normalize anonymous functions with parameters
This will become relevant for

   ginkgo.BeforeEach(func(ctx context.Context) { ... })
2022-12-10 21:47:17 +01:00
Kubernetes Prow Robot
d2e3c70f1d Merge pull request #111961 from pohly/e2e-klog-output
e2e: klog output
2022-09-17 14:38:28 -07:00
Humble Chirammal
9e9fc2be88 various corrections in test/e2e package
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-09-16 18:59:30 +05:30
Patrick Ohly
f7864977b6 e2e internal: support Ginkgo v2 log time stamps
When using By or some other Ginkgo output functions, Ginkgo v2 now adds a time
stamp at the end of the line that we need to ignore. Will become relevant when
testing more complete output.
2022-09-08 22:50:01 +02:00
Patrick Ohly
96e9a93a6b e2e: disable double printing of errors
We don't want klog to print to anything other than GinkgoWriter, but it still
used os.Stderr in addition to GinkgoWriter when printing log entries with
severity >= error. Changing "stderrthreshold" fixes that.

The unit test for framework output handling didn't test klog behavior. Now it
does:
- os.Stderr is redirected, should be empty
- a new test invokes klog
2022-08-22 17:04:26 +02:00
Patrick Ohly
c80eec19dd e2e: fix output test assertion
The format string didn't match the parameters.
2022-08-22 16:59:18 +02:00
Davanum Srinivas
a9593d634c Generate and format files
- Run hack/update-codegen.sh
- Run hack/update-generated-device-plugin.sh
- Run hack/update-generated-protobuf.sh
- Run hack/update-generated-runtime.sh
- Run hack/update-generated-swagger-docs.sh
- Run hack/update-openapi-spec.sh
- Run hack/update-gofmt.sh

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-07-26 13:14:05 -04:00
Dave Chen
f792256954 e2e: adapt output tests to Ginkgo v2 and Gomega 1.19
Full stack traces are on by default. The approach for collecting results is
different. Tests run in their own goroutine, therefore runTests is no longer
part of their callstack. To cover stack traces with more than one entry, a new
test case gets added with a separate helper function.

Gomega object formatting now includes the type.

This removes the last remaining reference to Ginkgo v1.

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00
Patrick Ohly
f02c72eaf9 pods: more tolerant checking of poll tests
Under load we might skip some of the poll events, leading to less output. Now
we expect only at least one output line for polling.
2022-06-03 13:41:11 +02:00
Patrick Ohly
486744e814 e2e: test output of e2epod wait
Both output during the test and the failure message are covered.
2022-06-03 11:03:16 +02:00
Patrick Ohly
0e0e51d792 e2e: refactor Ginkgo output testing
The helper code will be useful for testing other parts of the e2e framework.
2022-06-03 10:25:23 +02:00