linkerd2/controller/k8s
Alejandro Pedraza ae62d92f7d
Fixes unit tests indeterminism (#6496)
We were getting sporadic coverage differences on `controller/k8s/test_helper.go` and `pkg/healthcheck/healthcheck_test.go` on pushes unrelated to those files.

For the former, the problem was in tests in `controller/k8s/api_test.go` that compared slices of pods and services by sorting them. The `Sort` interface was implemented through the methods in `test_helper.go`. There is indeterminism in that sorting at the go library level apparently, in that the `Swap` method is not always called, which impacted the coverage report. The fix consists on comparing those slices item by item without needing to sort beforehand.

As for `healthcheck_test.go`, `validateControlPlanePods()` in `healthcheck.go` short-circuits on the first pod having all its containers ready. The unit tests iterate over maps, an iteration we know is not deterministic, so sometimes the short-circuiting avoided to ever cover the `!container.Ready` block, thus affecting the coverage report. This is fixed by adding a new small test that makes sure that block is covered.
2021-07-19 12:42:45 +05:30
..
api.go Add parent obj validation for ReplicaSets (#6458) 2021-07-13 10:16:35 -06:00
api_test.go Fixes unit tests indeterminism (#6496) 2021-07-19 12:42:45 +05:30
clientset.go Upgrade to client-go 0.17.4 and smi-sdk-go 0.3.0 (#4221) 2020-04-01 10:07:23 -07:00
test_helper.go Fixes unit tests indeterminism (#6496) 2021-07-19 12:42:45 +05:30