Commit Graph

9337 Commits

Author SHA1 Message Date
Patrick Ohly
f021d6590e bazel update 2019-08-26 12:39:00 +02:00
Patrick Ohly
259bb3bef5 e2e: consistent failure logging
All failures are worth logging immediately, not just unexpected
errors. That helps understand tests that have long-running cleanup
operations with their own logging, because the failure will be visible
inside the test output.

The logging in framework.ExpectNoError also was rather poor, because
it only showed the error, but not the additional information about it.

Tests suites now should use log.Fail as Gomega failure handler instead
of ginkgowrapper.Fail. log.Fail will handle the logging for all
failures before proceeding to record the failure in Ginkgo.

Because logging is always done also after a test failure, additional
failures during cleanup are now visible. Ginkgo itself just ignores
them.
2019-08-26 12:38:35 +02:00
Patrick Ohly
311b66ada1 e2e: unit test for logger.go and ginkgowrapper.go
This test runs a fake Ginkgo suite with various errors and checks how
logger.go respectively ginkgowrapper.go handle this. Right now, the
outcome is sub-optimal:

- some test failures (those that use framework.Failf or
  framework.ExpectNoError) are logged immediately, Gomega failures
  are not
- framework.ExpectNoError logs just the error, which is often useless
  without the additional explanation
- failures that occur after some others are not reported at all;
  this can happen in cleanup code and while that code should better
  be written so that it contines instead of failing on an assertion,
  in practice quite a lot of code fails and when it does, the output
  would be useful to have
- the full stack trace is odd and doesn't start with the expected
  function name

Example output:

• Failure [0.002 seconds]
log
/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:35
  fails [It]
  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:39

  Jul 17 12:00:52.545: I'm failing.

  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:41

  Full Stack Trace
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger.go:51 +0x143
  k8s.io/kubernetes/test/e2e/framework/log.Failf(...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger.go:43
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.2.1(...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:41
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.2()
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:42 +0x52
  k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync(0xc00029b020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:65 +0x1c8
  testing.tRunner(0xc000358600, 0x19818c0)
  	/nvme/gopath/go/src/testing/testing.go:865 +0xc0
  created by testing.(*T).Run
  	/nvme/gopath/go/src/testing/testing.go:916 +0x35a

------------------------------
Jul 17 12:00:52.545: INFO: before
Jul 17 12:00:52.545: INFO: I'm failing.
Jul 17 12:00:52.547: INFO: after
• Failure [0.002 seconds]
log
/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:35
  asserts [It]
  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:44

  false is never true
  Expected
      <bool>: false
  to equal
      <bool>: true

  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:45

  Full Stack Trace
  	/nvme/gopath/src/k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion/assertion.go:75 +0x1f1
  k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion.(*Assertion).To(0xc00035f6c0, 0x1b42140, 0xc000350dd0, 0xc000350de0, 0x1, 0x1, 0x42e35f)
  	/nvme/gopath/src/k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion/assertion.go:38 +0xc7
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.3()
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:45 +0x17e
  k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync(0xc00029b0e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:65 +0x1c8
  testing.tRunner(0xc000358600, 0x19818c0)
  	/nvme/gopath/go/src/testing/testing.go:865 +0xc0
  created by testing.(*T).Run
  	/nvme/gopath/go/src/testing/testing.go:916 +0x35a

------------------------------
Jul 17 12:00:52.548: INFO: before
Jul 17 12:00:52.549: INFO: after
• Failure [0.002 seconds]
log
/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:35
  error [It]
  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:47

  hard-coded error
  Unexpected error:
      <*errors.errorString | 0xc000351930>: {
          s: "I'm an error, nice to meet to.",
      }
      I'm an error, nice to meet to.
  occurred

  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:49

  Full Stack Trace
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/util.go:1376 +0x191
  k8s.io/kubernetes/test/e2e/framework.ExpectNoError(...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/util.go:1367
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.4()
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:49 +0xc9
  k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync(0xc00029b200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:65 +0x1c8
  testing.tRunner(0xc000358600, 0x19818c0)
  	/nvme/gopath/go/src/testing/testing.go:865 +0xc0
  created by testing.(*T).Run
  	/nvme/gopath/go/src/testing/testing.go:916 +0x35a

------------------------------
Jul 17 12:00:52.550: INFO: before
Jul 17 12:00:52.550: INFO: Unexpected error occurred: I'm an error, nice to meet to.
Jul 17 12:00:52.551: INFO: after
2019-08-26 11:32:25 +02:00
Kubernetes Prow Robot
36b2914207 Merge pull request #81809 from oomichi/replace-e2elog-framework-p
Use log functions of core framework on p*
2019-08-25 21:40:21 -07:00
Kubernetes Prow Robot
8e05e8346a Merge pull request #81693 from oomichi/replace-e2elog-framework-c-n
Use log functions of core framework on [c-n]
2019-08-24 04:48:24 -07:00
Kubernetes Prow Robot
8dc4b1b585 Merge pull request #80213 from bclau/tests/skips-windows-unrelated-tests
tests: Skips Windows-unrelated tests on Windows
2019-08-23 20:56:25 -07:00
Kubernetes Prow Robot
220498b83a Merge pull request #81107 from wongma7/expand-cleanup
Don't overwrite PVC with nil/empty object returned by failed Update
2019-08-23 13:31:31 -07:00
Kubernetes Prow Robot
e5ca30cbe0 Merge pull request #81684 from jpbetz/conformance-prep
Prepare admission and CRD e2e tests to be promoted to conformance
2019-08-23 08:23:17 -07:00
Kubernetes Prow Robot
518ff2a405 Merge pull request #81811 from oomichi/replace-e2elog-framework-deployment-ingress
Use log functions of core framework on [d-i]
2019-08-23 06:54:17 -07:00
Kubernetes Prow Robot
da470c6c5f Merge pull request #81767 from schrodit/fix-e2e-node-lease
Do not cleanup node lease namespace in e2e setup suite
2019-08-23 04:55:44 -07:00
Kubernetes Prow Robot
66d3572853 Merge pull request #79828 from akremsa/remove_eq_cache_tests
Removed equivalence cache tests
2019-08-23 04:55:18 -07:00
Kubernetes Prow Robot
15812bc1c7 Merge pull request #81755 from wongma7/skip-ssh-volumes
Skip spec.volumes mount/map test if no SSH
2019-08-23 03:27:43 -07:00
Kubernetes Prow Robot
81c0febcd0 Merge pull request #81715 from SataQiu/fix-test-e2e-framework
Fix static check for test/e2e/framework
2019-08-22 23:27:55 -07:00
Kubernetes Prow Robot
8bf4bdc7f3 Merge pull request #79910 from k-toyoda-pi/replace_KubeDescribe_e2e_kubectl
Replace KubeDescribe with ginkgo.Describe in e2e/kubectl
2019-08-22 23:27:16 -07:00
Kubernetes Prow Robot
4a4d5f47d5 Merge pull request #81695 from oomichi/ExpectEqual-node
Use framework functions under test/e2e/node/
2019-08-22 22:03:58 -07:00
Joe Betz
a5bf6e6797 Replace time.Sleep with poll.wait in admission e2e tests 2019-08-22 19:24:44 -07:00
Kubernetes Prow Robot
09a4b7e257 Merge pull request #81488 from oomichi/move-HandleFlags
Move HandleFlags to e2e package
2019-08-22 17:33:33 -07:00
Matthew Wong
b125bdda20 Don't overwrite PVC with nil/empty object returned by failed Update 2019-08-22 17:03:06 -07:00
Joe Betz
363d1fec08 Switch to v1 for admission and CRDs for all api-machinery e2e tests 2019-08-22 16:01:07 -07:00
Kenichi Omichi
20f507fc6a Use log functions of core framework on [d-i]
This makes sub packages of e2e test framework to use log functions
of core framework instead for avoiding circular dependencies.
2019-08-22 22:12:47 +00:00
Kubernetes Prow Robot
f14e88ad6e Merge pull request #81414 from wojtek-t/lease_e2e_test
Add e2e test for Lease API
2019-08-22 15:09:59 -07:00
Kenichi Omichi
0adcf14477 Use log functions of core framework on p*
This makes sub packages of e2e test framework to use log functions
of core framework instead for avoiding circular dependencies.
2019-08-22 20:55:25 +00:00
Kubernetes Prow Robot
6b47754740 Merge pull request #81627 from tallclair/copy
Delete duplicate resource.Quantity.Copy()
2019-08-22 11:13:13 -07:00
Alexey Kremsa
ff7b07c43c removed equivalence cache tests
fix build
2019-08-22 14:55:30 +03:00
wojtekt
4be5ebd4dc Add e2e test for Lease API 2019-08-22 12:19:43 +02:00
Joe Betz
d4958c0bee Remove all skips from admission and CRD e2e tests that will be promoted to conformance 2019-08-22 02:04:35 -07:00
Kubernetes Prow Robot
c008cf95a9 Merge pull request #77865 from mgdevstack/promote-service-types-updates
Promote e2e verifying different types of services and their behaviours
2019-08-22 00:50:32 -07:00
Tim Schrodi
e88b6310ce Do not cleanup node lease namespace in e2e setup suite 2019-08-22 08:44:31 +02:00
Matthew Wong
a81ca7ec5f Skip spec.volumes mount/map test if no SSH 2019-08-21 16:39:49 -07:00
Jiatong Wang
9a2ccc2c4f Dump the stacktrace while an error occurs
Signed-off-by: Jiatong Wang <wangjiatong@vmware.com>
2019-08-21 11:28:59 -07:00
Kubernetes Prow Robot
dd0fb73a61 Merge pull request #81393 from oomichi/cleanup-ReadOrDie
Remove fail argument from ReadOrDie()
2019-08-21 10:36:31 -07:00
SataQiu
c60377c682 fix static check for test/e2e/framework 2019-08-21 17:28:36 +08:00
Kubernetes Prow Robot
fd724dbed4 Merge pull request #81541 from jpbetz/alternate-port
Use non-default container port and scoped port vars in webhook e2e tests
2019-08-21 00:29:46 -07:00
Kubernetes Prow Robot
0dfb87dfa5 Merge pull request #81537 from spiffxp/mv-hpa-tests-out-of-release-blocking
Demote HPA tests from release-blocking
2019-08-20 23:06:09 -07:00
Kubernetes Prow Robot
11abd6dca0 Merge pull request #81389 from oomichi/remove-invalid-dependency-node
Move ProxyRequest to kubelet e2e fw
2019-08-20 23:05:42 -07:00
Kubernetes Prow Robot
9c7c9916e3 Merge pull request #81363 from bclau/tests/fixes-dns-tests-for-windows
tests: Fixes DNS tests for Windows
2019-08-20 23:05:29 -07:00
Kubernetes Prow Robot
efcb62abff Merge pull request #81196 from mkimuram/issue/71748
Speed up block volume e2e test by checking events
2019-08-20 20:40:16 -07:00
Kubernetes Prow Robot
d935e06dd4 Merge pull request #80682 from mgdevstack/dns-google-cloud
Remove cloud specific DNS check to make e2e Conformance eligible
2019-08-20 20:39:43 -07:00
Kubernetes Prow Robot
7a81ecd191 Merge pull request #77794 from saiyan86/fixAzureE2ETest
Use TCP instead of ICMP to check outbound connectivity
2019-08-20 19:13:18 -07:00
Kenichi Omichi
0d2e5866d4 Use framework functions under test/e2e/node/
There are some functions of e2e test framework and it is useful to
read the test code by using these functions.
This replaces gomega calls with these functions under test/e2e/node/
2019-08-21 02:01:49 +00:00
Kenichi Omichi
f3f14f9698 Use log functions of core framework on [c-n]
This makes sub packages of e2e test framework to use log functions
of core framework instead for avoiding circular dependencies.
2019-08-21 00:55:32 +00:00
Claudiu Belu
8812720148 tests: Skips Windows-unrelated tests on Windows
Skips IPv6 tests on Windows.
Skips sysctl tests on Windows.
Skips network policy tests on Windows.
Skips RunAsUser / FSGroup / file permissions related tests, as those are
not supported on Windows.
Skips the test "should preserve source pod IP for traffic thru service cluster IP"
on Windows, as it creates a Pod with HostNetwork=true, which is unsupported.

What works and what doesn't work on Windows has been documented here:
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md#windows--linux-considerations
2019-08-20 14:19:14 -07:00
Joe Betz
a3e187d86a Use non-default container port and scoped port vars in webhook e2e tests 2019-08-20 13:13:55 -07:00
Kubernetes Prow Robot
5c68a231ab Merge pull request #81620 from wongma7/nfs-alpha
Bump nfs-provisioner to include GetReference fix
2019-08-20 10:47:15 -07:00
Kubernetes Prow Robot
cda22916c5 Merge pull request #81611 from gnufied/fix-block-volume-e2e-csi
Fix e2e for block volume expansion
2019-08-20 02:00:17 -07:00
Kubernetes Prow Robot
77ee754b4c Merge pull request #81540 from roycaihw/webhook-e2e-dial-timeout
Handle tcp dial timeout in webhook e2e test
2019-08-20 02:00:01 -07:00
Kubernetes Prow Robot
8f887cad45 Merge pull request #81497 from jpbetz/crd-e2e-v1
Upgrade e2e tests to use CRD v1 APIs
2019-08-20 01:59:33 -07:00
Kubernetes Prow Robot
461a628101 Merge pull request #81558 from liggitt/admissionregistration-v1-e2e
Use v1 admissionregistration APIs in e2e
2019-08-19 20:44:18 -07:00
Kubernetes Prow Robot
081db915d3 Merge pull request #81426 from oomichi/make-e2elog-back
Add log.go back to core of e2e test framework
2019-08-19 20:43:47 -07:00
Joe Betz
5abf6b5d3e Bump agnhost image version to 2.5 2019-08-19 18:31:23 -07:00